/**
 * 一个包含多种验证正则表达式的对象，每个属性都是一个用于验证特定类型字符串的正则表达式。
 */
export const validationRegexes = {
    /**
     * 验证电子邮件地址的正则表达式。
     * 匹配形如 example@example.com 的电子邮件地址。
     */
    email: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,

    /**
     * 验证电话号码（简化版，以美国电话号码为例）的正则表达式。
     * 匹配形如 (123) 456-7890、123.456.7890 或 123 456 7890 的电话号码。
     */
    phone: /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/,

    /**
     * 注意：此属性名为 'tel' 实际上与 'phone' 相同，但在某些上下文中可能用于更广泛的电话号码概念。
     * 验证电话号码（与'phone'相同，作为示例保留）。
     */
    tel: /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/,

    /**
     * 验证中国身份证号码的正则表达式。
     * 匹配18位的身份证号码，包括最后一位可能是X的情况。
     */
    idcard: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[\dXx]$/,

    /**
     * 验证银行卡号的正则表达式（简化版）。
     * 仅检查长度在16到19位之间的数字字符串，不验证Luhn算法校验位。
     */
    bankcard: /^\d{16,19}$/,

    /**
     * 验证密码复杂性的正则表达式。
     * 要求密码至少包含一个数字、一个大写字母、一个小写字母和一个特殊字符，并且长度在8到16位之间。
     */
    password: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,16}$/,

    /**
     * 验证用户名的正则表达式。
     * 允许用户名包含字母、数字、下划线和短横线，并且长度在3到15位之间。
     */
    username: /^[a-zA-Z0-9_-]{3,15}$/,
};